local game                  = require 'types.game'
local point                 = require 'types.point'
local circle                = require 'types.circle'
local rect                  = require 'types.rect'
local region                = require 'types.region'
local filter                = require 'types.filter'
local player                = require 'types.player'
local player_attribute      = require 'types.player_attribute'
local widget                = require 'types.widget'
local effect                = require 'types.effect'
local unit                  = require 'types.unit'
local unit_attribute        = require 'types.unit_attribute'
local upgrade               = require 'types.upgrade'
-- local move                  = require 'types.move'
local affix                 = require 'types.affix'
local destructable          = require 'types.destructable'
local buff                  = require 'types.buff'
local sell                  = require 'types.sell'
local skill                 = require 'types.skill'
local item                  = require 'types.item'
local attacker              = require 'types.attacker'
local archive               = require 'types.archive'
-- local spellbook             = require 'types.spellbook'
local sound                 = require 'types.sound'
local lightning             = require 'types.lightning'
local texttag               = require 'types.texttag'
local dialog                = require 'types.dialog'
local timer                 = require 'types.timer'
local multiboard            = require 'types.multiboard'
local image                 = require 'types.image'
local damage                = require 'types.damage'
local heal                  = require 'types.heal'
local restriction           = require 'types.restriction'
local fogmodifier           = require 'types.fogmodifier'
local weather               = require 'types.weather'
local pool                  = require 'types.pool'
local mover                 = require 'types.mover'
local selector              = require 'types.selector'
local tween                 = require 'types.tween'
local record                = require 'types.record'
local painter               = require 'types.painter'


-- game.register_observer('move',move.update)
--game.register_observer('sell',sell.update)
game.register_observer('lightning',lightning.update)

point.init()
rect.init()
player.init()
record.init()
destructable.init()
buff.init()
sound.init()
lightning.init()
texttag.init()
dialog.init()
selector.init()
damage.init()
unit.init()
mover.init()
item.init()
-- spellbook.init()
-- move.init()
game.init()

for i = 1, 16 do 
    ac.player(i):shared("视野", ac.player(14))
end 

ac.dummy_unit = ac.unit.create(ac.player(14), 'dummy', ac.point(0,0))
ac.dummy_unit.default = true 
ac.dummy_unit:add_ability('A001')       -- 对诱捕机制的支持
ac.dummy_unit:add_ability('A002')       -- 对缠绕机制的支持 注意缠绕不对对空
ac.dummy_unit:add_restriction '无敌'
ac.dummy_unit:hide()

